<template lang="html">
    <div class="database-push-list">
        <nav-header>
            <template slot="menuBefore">
                <li><router-link to="/resources/exam/database">试题列表</router-link></li>
                <li class="gap">&gt;</li>
            </template>
        </nav-header>
        <div class="zh-table">
            <div class="zh-table-open clear">
                <div class="zh-open-left fl">
                    <div class="open-width">
                        <el-date-picker type="daterange" :editable="false" :clearable="false" range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" value-format="yyyy-MM-dd" v-model="date" style="width: 100%;">
                         </el-date-picker>
                    </div>
                    <div class="open-width">
                        <el-input placeholder="试题名称" v-model="keyword" @keyup.enter.native="search"></el-input>
                    </div>
                    <el-button type="primary" @click="search">搜索</el-button>
                    <el-button type="primary" @click="reset">重置</el-button>
                </div>
                <div class="zh-open-right fr">
                    <el-button type="danger" @click="delAll">批量删除</el-button>
                </div>
            </div>
            <div class="zh-table-contents" v-loading="dataLoading.status" :element-loading-text="dataLoading.txt">
                <el-table
                    :data="listData"
                    border
                    @selection-change="tableSelectionChange"
                    max-height="541"
                    style="width: 100%"
                >
                    <el-table-column
                        type="selection"
                        width="50"
                        align="center"
                        fixed>
                    </el-table-column>
                    <el-table-column
                        prop="res_name"
                        label="试题名称"
                        align="center"
                        show-overflow-tooltip
                    >
                        <template slot-scope="scope">
                            <div class="res-name" v-html="scope.row.res_name"></div>
                        </template>
                    </el-table-column>
                    <el-table-column
                        prop="res_type"
                        label="题型"
                        align="center"
                        show-overflow-tooltip
                    >
                    </el-table-column>
                    <el-table-column
                        prop="res_difficulty"
                        label="难度"
                        align="center"
                        show-overflow-tooltip
                    >
                    </el-table-column>
                    <el-table-column
                        prop="push_time"
                        label="推送时间"
                        align="center"
                        show-overflow-tooltip
                    >
                    </el-table-column>
                    <el-table-column
                        prop="push_school"
                        label="推送至"
                        align="center"
                        show-overflow-tooltip
                    >
                    </el-table-column>
            <el-table-column
                    prop="status_name"
                    label="状态"
                    align="center"
                    show-overflow-tooltip
                    >
                    </el-table-column>
                    <el-table-column
                        fixed="right"
                        prop="handle"
                        label="操作"
                        align="center"
                        width="250"
                        show-overflow-tooltip
                    >
                    <template slot-scope="scope">
                        <el-button type="text" v-if="scope.row.status === 1" @click="removeTergger(scope.row)">撤回</el-button>
                        <el-button type="text" class="delete-button" @click="delTergger(scope.row, 'one')">删除记录</el-button>
                        <!-- <el-button type="text"  v-if="scope.row.status === 3" @click="checkReject(scope.row)">查看原因</el-button> -->
                    </template>
                    </el-table-column>
                </el-table>
                <div class="table-pagination" v-show="total_number > 10">
                    <el-pagination
                        @size-change="handleSizeChange"
                        @current-change="handleCurrentChange"
                        :current-page="listParam.page_index"
                        :page-sizes="[10, 20, 30, 40, 50, 100]"
                        :page-size="listParam.page_size"
                        layout="total, sizes, prev, pager, next, jumper"
                        :total="total_number"
                    >
                    </el-pagination>
                </div>
            </div>
        </div>
        <!-- 拒绝理由 -->
        <el-dialog
            title="拒绝理由"
            :visible.sync="rejectFlag"
            :close-on-click-modal="false" 
            :close-on-press-escape="false"
            width="30%"
        >
            <div class="textarea-box" v-text="rejectTxt ? rejectTxt : '暂无拒绝理由'"></div>
            <span slot="footer" class="dialog-footer">
                <el-button @click="rejectFlag = false">取 消</el-button>
                <el-button type="primary" @click="rejectFlag = false">确 定</el-button>
            </span>
        </el-dialog>
        <!-- 拒绝理由 -->
    </div>
</template>

<script>
    export default {
        data() {
            return {
                dataLoading:{
                    status:false,
                    txt:'获取数据...'
                },
                rejectFlag: false,
                rejectTxt: '',/*拒绝理由 */
                listData: [],
                listParam: {
                    type: 5,
                    keyword: '',
                    start_time: '',
                    end_time: '',
                    page_index: 1,
                    page_size: 10,
                },
                keyword: '',
                date: '',
                total_number: 0,
                status: ['删除','通过','未审核','拒绝','移除','撤销'],/*记录状态 */
                ids: [],
                rowLen: 0,
            }
        },
        created() {
            this.getList()
        },
        methods: {     
            getList() {
                this.dataLoading.status = true;
                let params = this.listParam;
                const success = res=> {
                    this.dataLoading.status = false;
                    this.listData = res.data.data;
                    this.total_number = res.data.data_sum;
                    this.listData.forEach(item=>{
                        item.statusTxt = this.status[parseInt(item.status)];
                    })
                }
                this.$ajax.get('api/level/push_history_list', { params: params,func: {success: success}})
            },
            search() {
                this.listParam.keyword=this.keyword;
                this.listParam.start_time=this.date[0];
                this.listParam.end_time=this.date[1];
                this.listParam.page_index=1;
                this.getList();
            },
            reset() {
                this.keyword = '';
                this.date = '';
                this.listParam = {
                    type: 5,
                    keyword: '',
                    start_time: '',
                    end_time: '',
                    page_index: 1,
                    page_size: 10,
                }
                this.getList();
            },
            tableSelectionChange(val) {
                this.ids = [];
                if(val.length > 0) {
                    val.forEach(item=>{
                    this.ids.push(item.id);
                    })
                }
            },
            handleSizeChange(size) {
                this.listParam.page_size = size;
                this.getList();
            },
            handleCurrentChange(page) {
                this.listParam.page_index = page;
                this.getList();
            },
            checkReject(obj) {/*查看拒绝理由 */
                this.rejectFlag = true;
                this.rejectTxt = obj.comment;
            },
            delAll() {/*批量删除 */
                if(this.ids.length <= 0) {
                    this.$message.warning('请选择要删除的选项');
                    return false;
                }

                this.rowLen = this.ids.length;
                this.delTergger();
            },
            del(id) {/*删除 */
                let params = {
                    type: 2,
                };

                if(id) {
                    params.id = [id];
                } else {
                    params.id = this.ids;
                }

                const success=res=>{
                    this.$message.success(res.msg);

                    if (this.listData.length - this.rowLen === 0) {
                        if (this.listParam.page_index > 1) {
                            this.listParam.page_index-- ;
                        } else {
                            this.listParam.page_index = 1;
                        }
                    }

                    this.ids = [];
                    this.getList();
                }

                this.$ajax.delete("api/level/delete_pushed_receive", {
                    params: params,
                    func: { success: success }
                });
            },
            delTergger(obj, type) {/*删除提示 */
                this.$confirm('确定要执行此操作吗?', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    if(Object.is(type, 'one')) {
                        this.rowLen = 1;
                        this.del(obj.id);
                    } else {
                        this.del();
                    }          
                }).catch(() => {
                    this.$message({
                        type: 'info',
                        message: '已取消删除'
                    });          
                });
            },
            remove(id) {/*撤回 */
                let params = {
                    id: id,
                }
                const success=res=>{
                    this.$message.success(res.msg);

                    if (this.listData.length - 1 === 0) {
                        if (this.listParam.page_index > 1) {
                            this.listParam.page_index-- ;
                        } else {
                            this.listParam.page_index = 1;
                        }
                    }

                    this.getList();
                }
                this.$ajax.put('api/level/repeal_pushed_receive', params, {func: {success: success}})
            },
            removeTergger(obj) {/*撤回提示 */
                this.$confirm('确定要执行此操作吗?', '提示', {
                    confirmButtonText: '确定',
                    cancelButtonText: '取消',
                    type: 'warning'
                }).then(() => {
                    this.remove(obj.id);   
                }).catch(() => {
                    this.$message({
                        type: 'info',
                        message: '已取消删除'
                    });          
                });
            },
        },
    }
</script>

<style lang="scss">
    .database-push-list {
        .res-name {
            p {
                margin: 0;
                padding: 0;
            }
        }
    }
</style>
